<?php

namespace app\month\controller;

use app\month\model\Comment;
use app\month\model\Essay;
use think\Controller;
use think\Request;
use Elasticsearch\ClientBuilder;

class Essays extends Controller
{
    // 权限管理
    public function __construct(Request $request = null)
    {
        parent::__construct($request);
        session('user_info',1);
        if ($request->action() != 'show' && session('user_info') != 1){
            $this->error('您没有权限做此操作');
        }
    }

    // 后台文章管理 列表展示
    public function show(){
        // 传递搜索条件
        $search = input('search');
        $where = [];
        if (isset($search) && !empty($search)){
//            $where['create_time'] = ['like',"%$search%"];
//            $where['state'] = ['like',"%$search%"];
            $where['title'] = ['like',"%$search%"];
        }
        // 查询数据
        $data = Essay::where($where)->order('id desc')->paginate(5);
        // 渲染到页面
        return view('show',compact('data'));
    }
    // 文章添加
    public function add(){
        // 渲染视图
        return view('add');
    }
    // 执行添加
    public function adddo(){
        // 接收数据
        $data = input();
        // 图片处理
        $img = \request()->file('img');
        $info = $img->move(ROOT_PATH.'public'.DS.'img');
        $data['img'] = './img/'.$info->getSaveName();
        // 添加数据
        $res = Essay::create($data,true);

        // 失败判断
        if (!$res){
            $this->error('添加失败');
        }
        return redirect('show');

    }
    // 文章删除
    public function del($id){
        // 查询此条数据
        $data = Essay::get($id);
        if ($data->state=='显示'){
            $this->error('文章已启用，不可删除');
        }
        // 删除数据
        $res =  Essay::destroy($id);
        if (!$res){
            $this->error('删除失败');
        }
        return redirect('show');
    }
    // 回收站
    public function recycle(){
        $data = Essay::onlyTrashed()->select();
        // 渲染页面
        return view('recycle',compact('data'));
    }
    // 删除的数据恢复
    public function recover($id){
        $res = Essay::update(['delete_time'=>null,'id'=>$id]);
        if (!$res){
            $this->error('删除失败');
        }
        return redirect('recycle');
    }
    // 文章编辑 更新
    public function edit($id)
    {
        $data = Essay::get($id);
        return view('edit',compact('data','id'));
    }
    // 文章编辑 更新
    public function upd(){
        // 接收数据
        $data = input();
        // 筛除多余数据
        array_shift($data);
        // 图片处理
        $img = \request()->file('img');
        $info = $img->move(ROOT_PATH.'public'.DS.'img');
        $data['img'] = './img/'.$info->getSaveName();
        $data['id'] = input('id');
        // 添加数据
        $obj = new Essay();
        $res = $obj->save($data,true);
        if (!$res){
            $this->error('更新失败');
        }
        return redirect('show');
    }


}
